﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using ASPNETVN.PORTAL.Components.UI;
using ASPNETVN.PORTAL.Components.Configuration.Settings;
using ASPNETVN.PORTAL.Components.UI.DataTypes;
using ASPNETVN.PORTAL.Components.Security;
using ASPNETVN.PORTAL.Components.Helpers;
using System.Collections;
using LMHTX.Modules.DIRECTORY.COOPERATIVE.Components;
using Type=LMHTX.Modules.DIRECTORY.COOPERATIVE.Components.Type;

namespace LMHTX.Modules.DIRECTORY.COOPERATIVE.MENU
{
    public partial class Main : PortalModuleControl
    {
        public Main()
        {
            ModuleSettingItem itemSetting = new ModuleSettingItem(new StringDataType());
            itemSetting.Value = Guid.Empty.ToString();
            itemSetting.Name = "ModuleID của Module DIRECTORY.COOPERATIVE";
            itemSetting.Description = "ModuleID của Module DIRECTORY.COOPERATIVE";
            itemSetting.SortOrder = 1;
            this.BaseSettings.Add("DIRECTORY.COOPERATIVE.ModuleID", itemSetting);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            Hashtable settings = this.Settings;
            Guid moduleID = new Guid(settings["DIRECTORY.COOPERATIVE.ModuleID"].ToString());

            // Left Pane.
            LiteralControl literal = new LiteralControl("");
            literal.Text += "<div class='MenuLink'>";

            string url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeList));
            literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Xem tất cả</a>", url);
            
            url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeSearch));
            literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Tìm kiếm</a>", url);

            literal.Text += "</div>";
            // Manager Permission.
            if (PortalSecurity.HasManageAuthorization(this.ModuleID))
            {
                literal.Text += "<div class='MenuLinkGroup'><span>Quản trị</span></div>";
                literal.Text += "<div class='MenuLink'>";

                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "AreaManager");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Địa bàn</a>", url);

                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "CareerManager");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Ngành nghề</a>", url);

                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "EmployeeManager", "jobtitle=CN");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Chủ nhiệm</a>", url);

                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "EmployeeManager", "jobtitle=PCN");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Phó chủ nhiệm</a>", url);

                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "EmployeeManager", "jobtitle=KTT");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Kế toán trưởng</a>", url);

                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "EmployeeManager", "jobtitle=TBKS");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Trưởng ban kiểm soát</a>", url);

                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "TrainingTypeManager");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Hình thức đào tạo</a>", url);

                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "TrainingLevelManager");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Trình độ / cấp bậc đào tạo</a>", url);

                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "AddEditItem");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Tạo mới đơn vị</a>", url);

                // Danh sach hop tac xa.
                url = HttpUrlBuilder.BuildAddEditUrl(moduleID, 0, "CooperativeManager");
                url = url.Substring(2);
                literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Danh sách đơn vị</a>", url);

                literal.Text += "</div>";
            }
            // Địa bàn
            List<Area> areas = Area.SelectCollectionAll(moduleID);
            if (areas.Count > 0)
            {
                url = HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeSearch, "areaid={0}", 0);
                url = url.Substring(2);
                literal.Text += string.Format("<div class='MenuLinkGroup'><a href='{0}'>{1}</a></div>", url, "Địa bàn");
                literal.Text += "<div class='MenuLink'>";

                foreach (Area area in areas)
                {
                    url = HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeSearch, "areaid={0}", area.ID);
                    url = url.Substring(2);

                    literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» {1}</a>", url, area.Title);
                }
                literal.Text += "</div>";
            }
            
            // Loại hình
            List<Type> types = Type.SelectCollectionAll(moduleID);
            if (areas.Count > 0)
            {
                url = HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeSearch, "typeid={0}", 0);
                url = url.Substring(2);
                literal.Text += string.Format("<div class='MenuLinkGroup'><a href='{0}'>{1}</a></div>", url, "Loại hình");
                literal.Text += "<div class='MenuLink'>";

                foreach (Type type in types)
                {
                    url = HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeSearch, "typeid={0}", type.ID);
                    url = url.Substring(2);

                    literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» {1}</a>", url, type.Title);
                }
                literal.Text += "</div>";
            }
            
            // Ngành nghề
            List<Career> careers = Career.SelectCollectionAll(moduleID);
            if (careers.Count > 0)
            {
                url = HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeSearch, "careerid={0}", 0);
                url = url.Substring(2);
                literal.Text += string.Format("<div class='MenuLinkGroup'><a href='{0}'>{1}</a></div>", url, "Ngành nghề");
                literal.Text += "<div class='MenuLink'>";

                foreach (Career career in careers)
                {
                    url = HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeSearch, "careerid={0}", career.ID);
                    url = url.Substring(2);

                    literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» {1}</a>", url, career.Title);
                }
                literal.Text += "</div>";
            }

            literal.Text += "<div class='MenuLinkGroup'><span>Thống kê / Báo cáo</span></div>";
            literal.Text += "<div class='MenuLink'>";

            url = HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeStatistics);
            url = url.Substring(2);
            literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Thống kê số liệu mẫu 1</a>", url);

            url = HttpUrlBuilder.BuildModulePageUrl(moduleID, 0, ModulePages.CooperativeStatistics2);
            url = url.Substring(2);
            literal.Text += string.Format("<a class='MenuLinkItem' href='{0}'>» Thống kê số liệu mẫu 2</a>", url);


            literal.Text += "</div>";

            ContentPane.Controls.Add(literal);
        }
    }
}